//
//  HomeTableViewController.swift
//  WeiBo_One
//
//  Created by apple on 15/10/19.
//  Copyright © 2015年 蜡笔小炎. All rights reserved.
//

import UIKit
import SVProgressHUD

//cell重用标识符
let HomeTableViewCellReuseId = "HomeTableViewCellReuseId"

class HomeTableViewController: BaseTableViewController {
    
    /// 微博模型列表
    private var listViewModel = StatusListViewModel()

    override func viewDidLoad() {
        super.viewDidLoad()

        // 如果用户没有登录
        if !UserAccountViewModel.sharedAccoutViewModel.userLogon {
            visitorView.setupInfo(nil, message: "关注一些人，回这里看看有什么惊喜")
            return
        }
        
        //设置TableView
        prepareTableView()
        
        // 加载数据
        loadData()
    }
    //设置TableView
    private func prepareTableView() {
        
        // 注册可重用 Cell
        tableView.registerClass(StatusCell.self, forCellReuseIdentifier: HomeTableViewCellReuseId)
        
        //取消cell之间的分割线
        tableView.separatorStyle = .None
        
        //预估行高
        tableView.estimatedRowHeight = 300
        tableView.rowHeight = 300
//        tableView.rowHeight = UITableViewAutomaticDimension
    }
    
    // 加载微博数据
    func loadData() {
        listViewModel.loadStatus { (isSuccess) -> () in
            if !isSuccess {
                SVProgressHUD.showInfoWithStatus("网络不给力")
                return
            }
            // 刷新数据
            self.tableView.reloadData()
        }
    }
}

// MARK: - 数据源方法
extension HomeTableViewController {
    
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return listViewModel.statusViewModels.count
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        // 重用 Cell
        let cell = tableView.dequeueReusableCellWithIdentifier(HomeTableViewCellReuseId, forIndexPath: indexPath) as! StatusCell
        // 设置数据
        cell.viewModel = listViewModel.statusViewModels[indexPath.row]
        
        return cell
    }
    // 计算行高
    override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return listViewModel.statusViewModels[indexPath.row].rowHeight
    }
}


